<?php
/* *
 * 功能：支付宝服务器异步通知页面
 * 版本：3.3
 * 日期：2012-07-23
 * 说明：
 * 以下代码只是为了方便商户测试而提供的样例代码，商户可以根据自己网站的需要，按照技术文档编写,并非一定要使用该代码。
 * 该代码仅供学习和研究支付宝接口使用，只是提供一个参考。


 *************************页面功能说明*************************
 * 创建该页面文件时，请留心该页面文件中无任何HTML代码及空格。
 * 该页面不能在本机电脑测试，请到服务器上做测试。请确保外部可以访问该页面。
 * 该页面调试工具请使用写文本函数logResult，该函数已被默认关闭，见alipay_notify_class.php中的函数verifyNotify
 * 如果没有收到该页面返回的 success 信息，支付宝会在24小时内按一定的时间策略重发通知
 */
require_once('../../../../../wp-load.php');
require_once("alipay.config.php");
require_once("lib/alipay_notify.class.php");

//计算得出通知验证结果
$alipayNotify = new AlipayNotify($alipay_config);
$verify_result = $alipayNotify->verifyNotify();

if($verify_result) {//验证成功
	/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	//请在这里加上商户的业务逻辑程序代

	
	//——请根据您的业务逻辑来编写程序（以下代码仅作参考）——
	
    //获取支付宝的通知返回参数，可参考技术文档中服务器异步通知参数列表
	
	//商户订单号

	$out_trade_no = $_POST['out_trade_no'];

	//支付宝交易号

	$trade_no = $_POST['trade_no'];

	//交易状态
	$trade_status = $_POST['trade_status'];
	
	$total_fee= $_POST['total_fee']; //获取总价格
	$orerNum=$out_trade_no;

	if($_POST['trade_status'] == 'WAIT_BUYER_PAY') {
	//该判断表示买家已在支付宝交易管理中产生了交易记录，但没有付款
	
		//判断该笔订单是否在商户网站中已经做过处理
			//如果没有做过处理，根据订单号（out_trade_no）在商户网站的订单系统中查到该笔订单的详细，并执行商户的业务程序
		    	//请务必判断请求时的price、quantity、seller_id与通知时获取的price、quantity、seller_id为一致的
			//如果有做过处理，不执行商户的业务程序
			
        echo "success";		//请不要修改或删除

        //调试用，写文本函数记录程序运行情况是否正常
        //logResult("这里写入想要调试的代码变量值，或其他运行的结果记录");
    }
	else if($_POST['trade_status'] == 'WAIT_SELLER_SEND_GOODS') {
	//该判断表示买家已在支付宝交易管理中产生了交易记录且付款成功，但卖家没有发货
	
		//判断该笔订单是否在商户网站中已经做过处理
			//如果没有做过处理，根据订单号（out_trade_no）在商户网站的订单系统中查到该笔订单的详细，并执行商户的业务程序
		    	//请务必判断请求时的price、quantity、seller_id与通知时获取的price、quantity、seller_id为一致的
			//如果有做过处理，不执行商户的业务程序
		
        echo "success";		//请不要修改或删除

        //调试用，写文本函数记录程序运行情况是否正常
        //logResult("这里写入想要调试的代码变量值，或其他运行的结果记录");
    }
	else if($_POST['trade_status'] == 'WAIT_BUYER_CONFIRM_GOODS') {
	//该判断表示卖家已经发了货，但买家还没有做确认收货的操作
	
		//判断该笔订单是否在商户网站中已经做过处理
			//如果没有做过处理，根据订单号（out_trade_no）在商户网站的订单系统中查到该笔订单的详细，并执行商户的业务程序
		    	//请务必判断请求时的price、quantity、seller_id与通知时获取的price、quantity、seller_id为一致的
			//如果有做过处理，不执行商户的业务程序
			
        echo "success";		//请不要修改或删除

        //调试用，写文本函数记录程序运行情况是否正常
        //logResult("这里写入想要调试的代码变量值，或其他运行的结果记录");
    }
	else if($_POST['trade_status'] == 'TRADE_FINISHED' || $_POST['trade_status'] == 'TRADE_SUCCESS') {
	//该判断表示买家已经确认收货，这笔交易完成
	
		//判断该笔订单是否在商户网站中已经做过处理
			//如果没有做过处理，根据订单号（out_trade_no）在商户网站的订单系统中查到该笔订单的详细，并执行商户的业务程序
		    	//请务必判断请求时的price、quantity、seller_id与通知时获取的price、quantity、seller_id为一致的
			//如果有做过处理，不执行商户的业务程序
		
		global $wpdb;
		$total_fee=$_POST['total_fee'];
		$money_info=$wpdb->get_row("select * from ".$wpdb->icemoney." where ice_num='".$wpdb->escape($_POST['out_trade_no'])."'");
		if($money_info){
			if(!$money_info->ice_success){
				if(!$money_info->ice_post_id && !$money_info->ice_user_type){
					$epd_game_price  = get_option('epd_game_price');
					if($epd_game_price){
						$cnt = count($epd_game_price['buy']);
						for($i=0; $i<$cnt;$i++){
							if($total_fee == $epd_game_price['buy'][$i]){
								$total_fee = $epd_game_price['get'][$i];
								break;
							}
						}
					}
				}
				addUserMoney($money_info->ice_user_id, $total_fee*get_option('ice_proportion_alipay'));
				$wpdb->query("UPDATE $wpdb->icemoney SET ice_money = '".$total_fee*get_option('ice_proportion_alipay')."', ice_alipay = '".$wpdb->escape($_POST['buyer_email'])."',ice_success=1, ice_success_time = '".date("Y-m-d H:i:s")."' WHERE ice_num = '".$wpdb->escape($_POST['out_trade_no'])."'");

				if($money_info->ice_post_id){
					$okMoney=erphpGetUserOkMoneyById($money_info->ice_user_id);
	                $postid = $money_info->ice_post_id;
	                $price=$total_fee*get_option('ice_proportion_alipay');
	                if($okMoney >= $price){
	                    if(erphpSetUserMoneyXiaoFeiByUid($price,$money_info->ice_user_id))
	                    {
	                        $subject   = get_post($postid)->post_title;
	                        $postUserId=get_post($postid)->post_author;
	                        $data=get_post_meta($postid, 'down_url', true);
	                        $result=erphpAddDownloadByUid($subject, $postid, $money_info->ice_user_id,$price,1, '', $postUserId);
	                        if($result)
	                        {
	                        	$down_activation = get_post_meta($postid, 'down_activation', true);
	                        	if($down_activation && function_exists('doErphpAct')){
									$activation_num = doErphpAct($money_info->ice_user_id,$postid);
									$wpdb->query("update $wpdb->icealipay set ice_data = '".$activation_num."' where ice_url='".$result."'");
									$cuser = get_user_by('id',$money_info->ice_user_id);
									if($cuser && $cuser->user_email){
										wp_mail($cuser->user_email, '【'.$subject.'】注册码', '您购买的资源【'.$subject.'】注册码：'.$activation_num);
									}
								}
								
	                            $ice_ali_money_author = get_option('ice_ali_money_author');
								if($ice_ali_money_author){
									addUserMoney($postUserId,$price*$ice_ali_money_author/100);
								}elseif($ice_ali_money_author == '0'){

								}else{
									addUserMoney($postUserId,$price);
								}
	                            $RefMoney=$wpdb->get_row("select * from ".$wpdb->users." where ID=".$money_info->ice_user_id);
	                            if($RefMoney->father_id > 0){
	                                addUserMoney($RefMoney->father_id,$price*get_option('ice_ali_money_ref')*0.01);
	                            }
	                        } 
	                    }
	                }
				}elseif($money_info->ice_user_type){
					addUserMoney($money_info->ice_user_id, '-'.$total_fee*get_option('ice_proportion_alipay'));
					userSetMemberSetData($money_info->ice_user_type,$money_info->ice_user_id);
					addVipLogByAdmin($total_fee*get_option('ice_proportion_alipay'), $money_info->ice_user_type, $money_info->ice_user_id);

					$RefMoney=$wpdb->get_row("select * from ".$wpdb->users." where ID=".$money_info->ice_user_id);
					if($RefMoney->father_id > 0){
						addUserMoney($RefMoney->father_id,$total_fee*get_option('ice_proportion_alipay')*get_option('ice_ali_money_ref')*0.01);
					}
						
				}
			}
		}
		
        echo "success";		//请不要修改或删除

        //调试用，写文本函数记录程序运行情况是否正常
        //logResult("这里写入想要调试的代码变量值，或其他运行的结果记录");
    }
    else {
		//其他状态判断
        echo "success";

        //调试用，写文本函数记录程序运行情况是否正常
        //logResult ("这里写入想要调试的代码变量值，或其他运行的结果记录");
    }

	//——请根据您的业务逻辑来编写程序（以上代码仅作参考）——
	
	/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
}
else {
    //验证失败
    echo "fail";

    //调试用，写文本函数记录程序运行情况是否正常
    //logResult("这里写入想要调试的代码变量值，或其他运行的结果记录");
}
?>